from django.shortcuts import render,redirect,HttpResponse
from app02 import models         #引入表
from app02.utils.pegination import Pegination
# 部门管理



def depart_list(request):
    # 部门列表

    # 获取数据库中的全部部门信息
    serqet=models.Deancte.objects.all()
    # 分页
    page_object = Pegination(request,serqet,page_size=8)
    coxtent = {
        "serqet": page_object.page_mun,
        'page_string': page_object.html(),
    }
    return render(request,'depart_list.html',coxtent)

def depart_add(request):
    # 新建部门
   #  判断请求
    if request.method=='GET':
        return render( request, 'depart_add.html' )
    else:
#       当用户提交的是post请求时 ,获取到用户提交信息
        title=request.POST.get('title')
        #将信息保存到数据库
        models.Deancte.objects.create(title=title)

        #重定向部门列表
        return redirect('/depart/list/')

def depart_delete(request):
    # 删除部门
    #获取id
    nid = request.GET.get('nid')
    #删除信息
    models.Deancte.objects.filter(id=nid).delete()

    # 重定向部门列表
    return redirect('/depart/list/')


# http://127.0.0.1:8000/depart/4/edit/
# http://127.0.0.1:8000/depart/5/edit/
def  depart_edit(request,nid):
    # 修改部门

    #当用户发送的请求是一个get的时候，执行if语句里面的函数
    if request.method=='GET':
        # 根据nid,获取id [对象，对象]
        end = models.Deancte.objects.filter(id=nid).first()
        return render( request, "depart_edit.html", {'end': end} )
    else:
        #当用户提交的请求是一个post请求时，获取用户提交的信息
        title=request.POST.get("title")
        #编辑 更新用户提交的标题
        models.Deancte.objects.filter(id=nid).update(title=title)
        #返回部门列表页面
        return redirect('/depart/list/')

def depart_upload(request):
    #批量上传(Excel文件)
    from openpyxl import load_workbook

    # 1.获取用户上传的文件对象
    file_object = request.FILES.get('exc')

    #2.对象传递给openpyxl,由openpyxl读取表格内容
    wb=load_workbook(file_object)
    # 第0个sheet
    sheet=wb.worksheets[0]

    #3.循环每一行的内容   iter_rows(min_row=2)从第二行开始
    for row in sheet.iter_rows(min_row=2):
        text=row[0].value  #获取到每一行的文本内容
        print(text)
        exits=models.Deancte.objects.filter(title=text).exists()
        # 判断exits里面的数据是否存在数据库
        if not exits:
            models.Deancte.objects.create(title=text)
    return redirect('/depart/list/')


